Iterative Modulo Scheduling: An Algorithm For Software Pipelining
نویسنده
چکیده
Modulo scheduling is a framework within which a wide variety of algorithms and heuristics may be defined for software pipelining innermost loops. This paper presents a practical algorithm, iterative modulo scheduling, that is capable of dealing with realistic machine models. This paper also characterizes the algorithm in terms of the quality of the generated schedules as well the computational expense incurred.
منابع مشابه
Instruction Re-selection for Iterative Modulo Scheduling on High Performance Multi-issue DSPs
An iterative modulo scheduling is very important for compilers targeting high performance multi-issue digital signal processors. This is because these processors are often severely limited by idle state functional units and thus the reduced idle units can have a positively significant impact on their performance. However, complex instructions, which are used in most recent DSPs such as mac, usu...
متن کاملThe Bene t of Predicated Execution for Software Pipelining
Software pipelining is a compile-time scheduling technique that overlaps successive loop iterations to expose operation-level parallelism. An important problem with the development of e ective software pipelining algorithms is how to handle loops with conditional branches. Conditional branches increase the complexity and decrease the e ectiveness of software pipelining algorithms by introducing...
متن کاملThe Beneet of Predicated Execution for Software Pipelining
Software pipelining is a compile-time scheduling technique that overlaps successive loop iterations to expose operation-level parallelism. An important problem with the development of eeective software pipelin-ing algorithms is how to handle loops with conditional branches. Conditional branches increase the complexity and decrease the eeectiveness of software pipelin-ing algorithms by introduci...
متن کاملExplicitly Staged Software Pipelining
This paper describes an alternative to modulo scheduling for loops, in which the first step is to divide instructions into stages by solving a series of min-cut problems constructed from the code graph of the unscheduled loop body. Our algorithm is formulated and implemented in terms of the code graphs of our own “declarative assembly language” for CELL SPUs. We have measured an average 20% red...
متن کاملSoftware Pipeliner: Parallelization of Loops
Software pipelining, as an important parallel technique for loop structure, exploits the parallelism present among the iterations of a loop by overlapping the execution of successive iterations. This paper presents a practical and usable algorithm, Overlapping Modulo Scheduling(OMS), which is capable of modulo scheduling loops subjected to recurrence dependences and resource constraints for rea...
متن کامل